function move1(obj, options, callback) {
    for (let attr in options) {
        // 先停止定时器，然后再开定时
        let timer = null
        clearInterval(timer)
        timer = setInterval(() => {
            // 起始点
            let start
            if (attr === 'opacity') {
                start = parseFloat(getComputedStyle(obj)[attr]) * 100
            } else {
                start = parseFloat(getComputedStyle(obj)[attr])
            }
            // 距离
            let cur = (options[attr] - start) / 5
            // 有小数换算整数
            cur = cur > 0 ? Math.ceil(cur) : Math.floor(cur)

            if (attr === 'opacity') {
                obj.style[attr] = (start + cur) / 100
            } else {
                obj.style[attr] = start + cur + 'px'
            }

            if (start === options[attr]) {
                clearInterval(timer)
                if (callback) {
                    callback()
                }
            }
        }, 3)

    }
}